package top.jlzhou.tools.sms;

/**
 * <pre>短信验证码服务</pre>
 * @ClassName	top.jlzhou.tools.sms.SmsService
 * @author	J.L.Zhou
 * @date	2019年3月9日 下午6:53:28
 * @version 	V1.0
 * @Copyright	2019 jlzhou.top Inc. All rights reserved. 
 * 	注意：本内容仅限于公司内部传阅，禁止外泄以及用于其他的商业目
 */
public interface SmsService {

	/**
	 * 随机长度len的字符串
	 * @param len
	 * @return
	 */
	String getRandomCode(int len);
	
	/**
	 * 发送随机6位验证码
	 * @param tel 	手机号码
	 * @return		验证码
	 * @throws SmsException 1:重复发送 2:发送异常
	 */
	String send(String tel)throws SmsException;
	
	/**
	 * 发送验证码
	 * @param tel	手机号码
	 * @param code	验证码
	 * @throws SmsException 1:重复发送 2:发送异常
	 */
	void send(String tel,String code)throws SmsException;
	
	/**
	 * 检查手机验证码是否正确
	 * @param tel	手机号码
	 * @param code	验证码
	 * @return		是否匹配
	 * @throws SmsException 3:验证码已失效
	 */
	boolean check(String tel,String code)throws SmsException;
	

	/**
	 * 设置验证码缓存
	 * @param cache
	 */
	void setCache(SmsCacheService cache);
}
